vtd: Only enable some VT-d features if all VT-d engines support them.
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 18 Mar 2009 11:46:32 +0000 (11:46 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 18 Mar 2009 11:46:32 +0000 (11:46 +0000)
commitfe9cfff52a66ae2b6ac1cf803198fe1ff1318375
treea9777612abcf1a733f2ddc89b9df7fb628b7d916
parent0456ddb4323b083f72370867414bbe139c83490f
vtd: Only enable some VT-d features if all VT-d engines support them.

By default, we enable snoop control, queued invalidation and interrupt
remapping if all VT-d engines support them, and for DMA passthrough we
don't enable it by default.

A user can use 'iommu=passthrough' to enable DMA passthrough (only
for Dom0). A user can use 'iommu=no-snoop,no-qinval,no-intremap' to
disable the 3 features.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>=
xen/drivers/passthrough/iommu.c
xen/drivers/passthrough/vtd/dmar.c
xen/drivers/passthrough/vtd/iommu.c
xen/include/xen/iommu.h